package config;

import factory.GUIFactory;
import factory.impl.MacGUIFactory;
import factory.impl.WindowsGUIFactory;

/**
 * 配置类 - 决定使用哪种工厂
 */
public class ApplicationConfigurator {
    /**
     * 根据配置或环境决定使用哪种GUI工厂
     * @param osType 操作系统类型
     * @return 对应的GUI工厂
     */
    public static GUIFactory createFactory(String osType) {
        if ("Windows".equalsIgnoreCase(osType)) {
            return new WindowsGUIFactory();
        } else if ("Mac".equalsIgnoreCase(osType)) {
            return new MacGUIFactory();
        } else {
            throw new IllegalArgumentException("不支持的平台: " + osType);
        }
    }
    
    /**
     * 自动检测操作系统
     * @return 对应的GUI工厂
     */
    public static GUIFactory createFactoryBySystem() {
        String osName = System.getProperty("os.name").toLowerCase();
        if (osName.contains("win")) {
            return new WindowsGUIFactory();
        } else if (osName.contains("mac")) {
            return new MacGUIFactory();
        } else {
            // 默认返回Windows风格，或者可以抛出异常
            System.out.println("未知操作系统，使用默认的Windows风格");
            return new WindowsGUIFactory();
        }
    }
}